package com.ai.service;

import com.ai.domain.pojo.Chat;
import com.ai.domain.vo.ChatVo;
import com.ai.domain.vo.HistoryVo;
import com.baomidou.mybatisplus.extension.service.IService;
import reactor.core.publisher.Flux;

import java.util.List;

/**
 * <p>
 * 对话列表 服务类
 * </p>
 *
 * @author 小杰大人
 * @since 2025-05-08
 */
public interface IChatService extends IService<Chat>, AIService {

    List<ChatVo> historyList();

    /**
     * 获取某个对话的历史记录
     * @param chatId 会话id
     * @return 历史记录列表
     */
    List<HistoryVo> querySelectByConversationId( String chatId);

    /**
     * 响应式编程 流式输出大模型的回复
     * @param type                类型：chat，pdf，service
     * @param prompt              用户指令
     * @param chatId      会话id
     * @return 大模型回复的流式输出
     */
    Flux<String> stream(String type, String prompt, Long chatId);


    void addChat();

    void deleteChatById(Long id);

    void updateChat(Chat chat);
}
